package com.demo.test.business;

import org.junit.Test;

/**
 * @author gy
 * @date 2023/3/16
 */
public class BsTypeUnique {

    /**
     * 业务场景：
     * 在选定某种类型的后，该场景下的 任务类型唯一，不可再次设定为其他类型
     */
    @Test
    public void m1(){
//        @Override
//        public void checkBeforeAdd(PeStudyNote bean,Map<String, Object> params) throws EntityException{
//            //判断同站点下该任务名称是否已经存在
//            if (bean != null && this.getSite_temp() != null && params != null) {
//                List list = this.myGeneralDao.getBySQL("SELECT id from pe_study_note where note_name  = '"+bean.getNoteName()+"' and site_id = '"+this.getSite_temp().getId()+"' and class_id = '"+params.get("id").toString()+"'  ");
//                if(list != null && list.size() > 0){
//                    throw new EntityException("任务名已存在，请确认！");
//                }
//            }
//
//            // 添加前校验  每个网络班级的任务详情只能有一种 任务类型
//            // 学习心得 或者 课程报告，禁止多种任务详情并存
//            if (bean != null && this.getSite_temp() != null && params != null) {
//
//                // 1、若不选择，默认值传值问题  根据 id
//                // 新增时 默认值问题
//                // 之前未选定任务类型   给定 任务类型为  学习心得
//                String currentFlagTaskType = bean.getEnumConstByFlagTaskType().getId();
//                if (StringUtils.isBlank(currentFlagTaskType)){ // 框架支持
//                    // 若未选择任务类型，默认给定任务类型为 学习心得
//                    currentFlagTaskType = "5fa01a6595a611ed8d080242ac110001";
//                    bean.getEnumConstByFlagTaskType().setId(currentFlagTaskType);
//                    bean.getEnumConstByFlagTaskType().setName("学习心得");
//                }
//
//                // 2、选择后 能不能添加的问题
//                // 查询当前已有的任务类型
//                // 如果没有 直接 跳过
//                // 如果存在 判断 新加的 任务类型  是否与 已存在的任务类型相同
//                // 相同 可以 添加
//                // 不同则抛错  该班级的任务类型为 ‘ ’，不可设定为‘’
//
//                // 查看是否已经存在 和 选定任务类型不同的 其他任务类型
//                List list = this.myGeneralDao.getBySQL("SELECT id,flag_task_type from pe_study_note where " +
//                        "flag_task_type is not null and " +
//                        "flag_task_type != '" + currentFlagTaskType + "' and " +
//                        "site_id = '" + this.getSite_temp().getId() + "' and class_id = '" + params.get("id").toString() + "'  ");
//                if (list != null && list.size() > 0) {
//                    // 获取到已经选定任务类型
//                    Object[] o = (Object[]) list.get(0);
//                    String existFlagTaskType = o[1].toString(); // 此处要保证底层数据库有默认值
//                    // 新增的任务类型和已存在的任务类型 不同 进行提示
//                    if (!existFlagTaskType.equals(currentFlagTaskType)) {
//                        String taskTypeName = bean.getEnumConstByFlagTaskType().getName();
//                        throw new EntityException("该班级的任务类型为" + taskTypeName + "，不可另外设置为其他类型！");
//                    }else{
//                        logger.info("班级"+params.get("id").toString()+"添加了相同任务类型的任务"+bean.getNoteName()+"，可正常添加，不做限制");
//                    }
//                }else{
//                    // 不存在 正常添加即可
//                    // 不存在其他，有两种情况：1、当前班级并没有该任务类型的相关任务 2、当前添加的 任务类型 与 该班级的任务类型相同
//                    logger.info("班级"+params.get("id").toString()+"此时并未设置任务类型,可以自由进行设定");
//                }
//                // 3、能不能修改的问题
//                // 引出修改的逻辑  一旦设定，无法修改，关闭可以修改的按钮
//            }
//        }
    }
}
